Concept
software testing
Parents
Children
Dynamic AnalysisFormal VerificationSoftware DebuggingSoftware ReliabilitySoftware Repair
89.6K
Publications
4.9M
Citations
134.3K
Authors
11.7K
Institutions
Symbolic Testing Automation
1962 - 1991
During 1962–1991, the software testing landscape was shaped by rapid advances in automated test data generation, symbolic execution, and program analysis-driven testing. Researchers developed data-space partitioning, domain-based partitioning, and data-flow analysis to guide test data selection and generation, while symbolic execution and formal testing systems enabled systematic path exploration and automated test-data derivation. Program analysis representations, such as program dependence graphs (PDG) and program slicing, provided abstractions of data and control dependencies to support testing, optimization, and verification tasks. The emphasis on testability design and reliability engineering for large-scale systems addressed hardware/software integration, verification tooling, and fault-tolerance approaches, alongside empirical analyses of real software errors to inform testing strategies and quality assurance practices.
• Test data generation and data-space partitioning emerge as core strategies, combining domain-based partitioning, data-flow analysis, and reliability criteria to guide test data selection and generation [3], [7], [12], [8], [11], [16], [1].
• Symbolic execution and formal testing systems enable systematic path exploration and automated test-data derivation, balancing automation with debugging support [4], [6], [13].
• Program analysis representations (PDG, program slicing) provide abstractions of data and control dependencies to support optimization, testing, and verification tasks [17], [19].
• Testability design and reliability engineering for large-scale systems address hardware/software integration, verification tooling, and fault-tolerance approaches [2], [5], [15].
• Empirical analyses of real software errors inform testing strategies and quality assurance practices [9], [14].
Empirical Testing and Verification
1992 - 2001
Symbolic Execution Driven Testing
2002 - 2008
Mutation-Driven Testing and Repair
2009 - 2015
Multi-Objective Search-Based Testing
2016 - 2017
Path-Guided Fuzzing and Repair
2018 - 2024